package algorithm.string;

/**
 * 整数反转
 * 给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。
 * <p>
 * 如果反转后整数超过 32 位的有符号整数的范围[−2 的 31 次方, 2 的 31 次方− 1] ，就返回 0。
 * <p>
 * 假设环境不允许存储 64 位整数（有符号或无符号）。
 */
public class Demo2 {

    /**
     * 示例 1：
     * <p>
     * 输入：x = 123
     * 输出：321
     * 示例 2：
     * <p>
     * 输入：x = -123
     * 输出：-321
     * 示例 3：
     * <p>
     * 输入：x = 120
     * 输出：21
     * 示例 4：
     * <p>
     * 输入：x = 0
     * 输出：0
     *
     * @param args
     */
    public static void main(String[] args) {
        reverse(-101);
    }

    public static int  reverse(int i){
        int res = 0;
        while (i!=0){
            int x = i % 10;//余数
            int n = res * 10 + x;
            if ((n - x) / 10 != res){
                res = 0;
                break;
            }
            res = n;
            i/=10;//商数
        }
        System.out.println(res);
        return  res;
    }

}
